package com.caocaog.market.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.caocaog.market.entity.GoodsBase;
import com.caocaog.market.entity.dto.GoodsDTO;
import com.caocaog.market.entity.vo.GoodsVO;

import java.util.List;

public interface GoodsHubService {

    /**
     * 查询商品基础信息分页
     * 会自动将排序字段改为 sort dest + createTime dest
     *
     * @param page       分页信息
     * @param goodsBase 查询条件
     * @return 商品基础信息分页
     */
    IPage<GoodsBase> queryGoodsHubPage(Page<GoodsBase> page, GoodsBase goodsBase);

    /**
     * 获取商品库数据
     */
    List<GoodsVO> getGoodsHubListByShopTypeId(Long shopTypeId);


    /**
     * 新增商品库信息+规格+属性（缓存）
     *
     * @param goods 商品信息+规格+属性
     * @return 商品基础信息
     */
    GoodsVO addGoodsHub(GoodsDTO goods);


    /**
     * 编辑商品库信息+规格+属性（缓存）
     *
     * @param goods 商品信息+规格+属性
     * @return 商品基础信息
     */
    GoodsVO editGoodsHub(GoodsDTO goods);


    /**
     * 删除商品库信息+规格+属性（缓存）
     *
     * @param ids 商品ids
     * @return 受影响行数
     */
    int deleteGoodsHub(String... ids);


    /**
     * 批量插入商品
     * @param goodsDTOList 商品信息
     * @return 受影响行数
     */
    int batchImportGoods(List<GoodsDTO> goodsDTOList);

}
